class Contabilita::PremiAssicurativiController < DefaultController
  require_role self.parent_name.underscore
  
  active_scaffold :premio_assicurativo do |config|
    config.label = Application.controller_label(self)
    list.sorting = [:data_inizio => 'DESC']
    #config.subform.layout = :vertical

    # definizione colonne
    columns = [:polizza, :data_inizio, :data_fine, :frazionamento, :importo, :testo, :data_pagamento]
    columns_subform = [:data_inizio, :data_fine, :frazionamento, :importo, :testo, :data_pagamento]
    config.columns = columns
    config.create.columns = config.update.columns = columns + [:allegati]
    config.subform.columns = columns_subform

    # configurazione colonne
    config.columns[:frazionamento].options = {:options => PremioAssicurativo::FRAZIONAMENTO.map(&:to_sym), :include_blank => as_(:_select_)}
    config.columns[:frazionamento].form_ui = :select
    config.columns[:importo].options[:format] = :currency
    columns.each { |i| config.columns[i].inplace_edit = :ajax }
    [:data_inizio, :data_fine, :data_pagamento].each { |i|
      config.columns[i].form_ui = :calendar_date_select
    }
    [:data_inizio, :data_fine, :importo, :data_pagamento].each { |i|
      config.columns[i].options[:size] = 15
    }
    config.columns[:note].search_sql = 'note.testo'
    
    # azioni
    config.action_links.add "Note", :action => 'nested', :parameters => {:associations => :note}, :type => :member
    config.action_links.add "Allegati", :action => 'nested', :parameters => {:associations => :allegati}, :type => :member
  end
  
  def aggiorna_polizza(record)
    record.polizza.update_attributes(:frazionamento => record.frazionamento, :scadenza_premio => record.polizza.premi_assicurativi.first(:order => 'data_fine DESC').data_fine)
  end
  def after_create_save(record)
    aggiorna_polizza(record)
  end
  def after_update_save(record)
    aggiorna_polizza(record)
  end
end
